1. Field of the Invention
The present invention generally relates to a system and method for acquiring an image in the form of coded information symbols. More particularly, the present invention relates to a system and method for locating and decoding barcode symbols which may be partially obscured, poorly printed or contaminated.
2. Description of Prior Art
Barcode symbols are formed from bars or elements that are typically rectangular in shape with a variety of possible widths. The specific arrangement of elements defines a character according to a set of rules specified by the code or xe2x80x9csymbologyxe2x80x9d used. To encode a desired sequence of characters, a collection of element arrangements are concatenated to form a complete barcode symbol, with each character of the message being represented by a unique group of elements. In some symbologies a unique xe2x80x9cstartxe2x80x9d and xe2x80x9cstopxe2x80x9d character is also used to indicate where the barcode symbol begins and ends respectively. A number of different barcode symbologies exist, including UPC/EAN, Code 39, Code 128, Codabar, PDF417 and Interleaved 2 of 5.
Various optical readers and optical scanning systems have been developed for acquiring an image, such as a barcode symbol, appearing on the surface of an article and for reading and decoding the acquired barcode symbol. Scanning systems typically include a laser light source to illuminate the barcode symbol and a photodetector to detect light reflected from the symbol. Another common type of optical scanner incorporates a non-laser light source and a charge coupled device (CCD) detector. A portion of the light which is reflected off the symbol is detected by the CCD detector and converted into an electrical signal which provides a digital image of the barcode symbol that has been scanned. The digital image is then processed and decoded according to the specific barcode symbology used.
Most barcode symbols can be easily read in ideal conditions, such as when the barcode symbol is stationary, clearly visible and without flaws. However, when a barcode symbol is located on an object moving at a high speed, narrow bars and spaces cannot be easily located. Smearing of bars may result from low resolution imaging or high-speed motion of the barcode symbol in relation to the scanner. Extraneous markings or other contaminants may also partially obscure the barcode symbol.
An additional problem with many current scanners is that an attempt to decode a scan will fail if one or more characters in the sequence (including the start and stop characters) are not recognized as legitimate characters. Typically, the results of a partial decoding will not be saved. As a consequence, a variety of barcode symbols, including long barcode symbols with a short height, poorly printed barcode symbols, or barcode symbols which have been marred by extraneous markings, are impossible to decode unless repeated attempts are made by the operator to reorient the scanning line over the symbol. Barcode symbols may contain printing defects which are arranged such that it is impossible to obtain a single distortion free scan. Using conventional methods of decoding, such barcode symbols are unreadable since reading along any single scan line through the symbol would not result in a sequence of valid characters.
Accordingly, there exists a need for a scanner that quickly determines whether a scanned image is a valid barcode candidate and accurately decodes valid barcode candidates.
An area of interest is scanned to produce pixels of the scanned area. The pixels are divided into a plurality of blocks. For each block, an orientation of a spanning line or a lack of orientation is determined. Contiguous ones of the blocks are clustered, when their orientation is within a certain tolerance level. Each cluster has a length and a width. The length is longer than the width. If the orientation of a cluster""s block is perpendicular to the length of that cluster, that cluster is selected as a bar code candidate.